package com.zlc.workflow.core.instance.service;

import com.zlc.common.core.process.model.vo.StoneNodeApproveUserConfigVo;
import com.zlc.common.core.process.service.StoneNodeApproveUserConfigService;
import com.zlc.common.core.user.model.vo.MayanPlatUserVo;

import java.util.List;
import java.util.Map;

public interface WorkflowService {

    List<MayanPlatUserVo> getApprovalUserByConfig(StoneNodeApproveUserConfigVo configVo,String processInstanceId,Map<String,Object> formData);

    List<MayanPlatUserVo> getApprovalUserByEventId(String processInstanceId,String eventId, Map<String,Object> formData);

    List<MayanPlatUserVo> getApprovalUserByConfigId(String processInstanceId,String configId, Map<String,Object> formData);

    /**
     * 查询流程发起者
     */
    MayanPlatUserVo getProcessInstanceStarter(String processInstanceId);

    /**
     * 获取流程所有审批人
     */
    List<MayanPlatUserVo> getAllApprovalUserByProcessInstanceId(String processInstanceId);

    /**
     *
     * @param processInstanceId
     * @param nodeIds
     * @return
     */
    List<MayanPlatUserVo> getNodeApprovalUserByNodeId(String processInstanceId,List<String> nodeIds);
}
